package com.njtech.pet.service;

import com.njtech.pet.entity.Power;
import com.njtech.pet.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by m1870 on 2020/4/15.
 */
public interface PowerService{
    /**
     * 插入一条权限记录
     * @param power 插入的记录，id可以为空
     * @return 修改行数
     */
    int insert(Power power);

    /**
     * 修改一条权限记录
     * @param power 修改的记录，所有的均不能为空
     * @return 修改行数
     */
    int updateByPower(Power power);

    /**
     * 查询对应用户，不同power状态下在起止日期间的记录
     * @param user state必须为存在，若为null，则为所有
     * @param state 选择的权限状态，比如是否显示修改的记录
     * @return 权限集合
     */
    List<Power> selectByUserAndPowerState(User user, String state);

    /**
     * 根据power id 搜索
     * @param id power id
     * @return result
     */
    Power selectByPowerId(Integer id);
    /**
     * 用户是否拥有某个权限
     * @param user 用户id不能为空
     * @param power 权限的power不能为空，state可选
     * @param isVague 是否根据用户权限的power模糊查询
     * @return 符合条件的行数，如果结果>0则说明有
     */
    int selectRowsByUserAndPower(User user, Power power, boolean isVague);

}
